import router from '@/router'
import store from '@/store'
import nprogress from 'nprogress' // 引入进度条
import 'nprogress/nprogress.css'  // 引入进度条样式
const whiteList = ['/login', '404']  // 白名单,不需要token也能访问的页面
// 导航前置守卫
router.beforeEach(async (to, from, next) => {
  nprogress.start() // 开启进度条
  if (store.getters.token) {
    //存在有token 
    if (to.path === '/login') {
      next('/') // 跳转到主页
    } else {
      if (!store.getters.userId) {
        // 如果没有id 才表示当前用户资料没有获取过
        await store.dispatch('user/getUserInfo')
        // 如果说后续 需要根据用户资料获取数据的话 这里必须改成同步代码
      }
      next()  // 放行
    }

  } else {
    // 如果没有token 存在白名单内
    if (whiteList.indexOf(to.path) > -1) {
      next() // 放行
    } else {
      next('/login') // 如果不再白名单 强制跳转到登录页
    }
  }
  nprogress.done() // 关闭进度条

})

// 导航后置守卫
router.afterEach(route => {
  nprogress.done() // 关闭进度条
})